package com.whfc.safety.dao;

import com.whfc.safety.dto.SafetyCheckUserDTO;
import com.whfc.safety.entity.SafetyCheckUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author : qzexing
 * @version : 1.0
 * @date : 2020-08-04 11:05
 */

public interface SafetyCheckUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SafetyCheckUser record);

    int insertSelective(SafetyCheckUser record);

    SafetyCheckUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SafetyCheckUser record);

    int updateByPrimaryKey(SafetyCheckUser record);

    /**
     * 查询安全问题id，用户id，人员类型查询安全问题干系人
     *
     * @param checkId 安全问题上报主表id
     * @param userId  用户主键
     * @param Type    人员类型
     * @return
     * @author hw
     * @date 2020/8/5 9:19
     **/
    SafetyCheckUser selectByCheckIdAndUserIdAndType(@Param("checkId") Integer checkId, @Param("userId") Integer userId, @Param("type") Integer Type);

    /**
     * 使用安全问题上报主表id查询人员信息
     *
     * @param checkId 安全问题上报主表id
     * @return
     * @author hw
     * @date 2020/8/1 10:18
     **/
    List<SafetyCheckUserDTO> selectByCheckId(@Param("checkId") Integer checkId);

    /**
     * 根据问题ID 和 人员类型 查询 干系人员
     *
     * @param checkId 质量问题上报主表id
     * @param type    人员类型
     * @return 干系人员
     **/
    List<SafetyCheckUserDTO> selectQualityCheckUserDTOList(@Param("checkId") Integer checkId,
                                                           @Param("type") Integer type);

    /**
     * 软删除
     *
     * @param checkId
     */
    void del(Integer checkId);

    /**
     * 查找用户名
     *
     * @param checkId 检查记录ID
     * @param type    类型
     * @return 用户名
     */
    String selectUserNamesByType(@Param("checkId") Integer checkId,
                                 @Param("type") Integer type);

    List<SafetyCheckUserDTO> selectByCheckIds(@Param("checkIds")List<Integer> safetyCheckIds);
}